package controller;

import java.util.List;

import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import session.FachadaSession;
import Utils.Utils;
import dto.AlumnoDTO;
import dto.ProyectoEmpresaDTO;
import experto.ExpertoRegistrarPostulacion;

@WebServlet(urlPatterns="/registrarPostulacion/*")
public class RegistrarPostulacion extends Controller {
	
	private static final long serialVersionUID = 1L;
	
	private ExpertoRegistrarPostulacion experto;
	private static final String BUSCAR_ALUMNO = "buscarAlumno";
	private static final String LISTAR_PROYECTOS = "listarProyectos";

	/**
	 * busca el alumno con el legajo dado
	 * @param legajo
	 * @return
	 */
	private AlumnoDTO buscarAlumno(String legajo) {
		AlumnoDTO alumnoDTO = experto.getDatosAlumno(legajo);
		return alumnoDTO;
	}
	/**
	 * lista todos proyectos de una universidad
	 * @param legajo
	 * @return
	 */
	private List<ProyectoEmpresaDTO> listarProyectos(String legajo, String codUniversidad) {
		List<ProyectoEmpresaDTO> proyectosDTO = experto.listarProyectos(codUniversidad,legajo);
		return proyectosDTO;
	}

	@Override
	protected void crearExperto() {
		if( experto == null ) {
			experto = new ExpertoRegistrarPostulacion(); 
		}
	}

	@Override
	protected Object procesarRequest(String metodo, HttpServletRequest request,HttpServletResponse response) throws Exception {
		Object respuesta = null;
		switch (metodo) {
		case BUSCAR_ALUMNO:
			respuesta = buscarAlumno(request.getParameter("legajo"));
			break;
		case LISTAR_PROYECTOS:
			String codUniversidad = FachadaSession.getInstance().getCodUniversidad(request);
			String legajo = FachadaSession.getInstance().getLegajoAlumno(request);
			Utils.ValidarNuloYVacio(codUniversidad,legajo);
			respuesta = listarProyectos(legajo,codUniversidad);
			break;
	
		default:
			break;
		}
		return respuesta;
	}
	
}
